home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / libxml2 / libxml / xlink.h < prev    next >
C/C++ Source or Header  |  2006-04-25  |  5KB  |  190 lines

  1. /*
  2.  * Summary: unfinished XLink detection module
  3.  * Description: unfinished XLink detection module
  4.  *
  5.  * Copy: See Copyright for the status of this software.
  6.  *
  7.  * Author: Daniel Veillard
  8.  */
  9.  
  10. #ifndef __XML_XLINK_H__
  11. #define __XML_XLINK_H__
  12.  
  13. #include <libxml/xmlversion.h>
  14. #include <libxml/tree.h>
  15.  
  16. #ifdef LIBXML_XPTR_ENABLED
  17.  
  18. #ifdef __cplusplus
  19. extern "C" {
  20. #endif
  21.  
  22. /**
  23.  * Various defines for the various Link properties.
  24.  *
  25.  * NOTE: the link detection layer will try to resolve QName expansion
  26.  *       of namespaces. If "foo" is the prefix for "http://foo.com/"
  27.  *       then the link detection layer will expand role="foo:myrole"
  28.  *       to "http://foo.com/:myrole".
  29.  * NOTE: the link detection layer will expand URI-Refences found on
  30.  *       href attributes by using the base mechanism if found.
  31.  */
  32. typedef xmlChar *xlinkHRef;
  33. typedef xmlChar *xlinkRole;
  34. typedef xmlChar *xlinkTitle;
  35.  
  36. typedef enum {
  37.     XLINK_TYPE_NONE = 0,
  38.     XLINK_TYPE_SIMPLE,
  39.     XLINK_TYPE_EXTENDED,
  40.     XLINK_TYPE_EXTENDED_SET
  41. } xlinkType;
  42.  
  43. typedef enum {
  44.     XLINK_SHOW_NONE = 0,
  45.     XLINK_SHOW_NEW,
  46.     XLINK_SHOW_EMBED,
  47.     XLINK_SHOW_REPLACE
  48. } xlinkShow;
  49.  
  50. typedef enum {
  51.     XLINK_ACTUATE_NONE = 0,
  52.     XLINK_ACTUATE_AUTO,
  53.     XLINK_ACTUATE_ONREQUEST
  54. } xlinkActuate;
  55.  
  56. /**
  57.  * xlinkNodeDetectFunc:
  58.  * @ctx:  user data pointer
  59.  * @node:  the node to check
  60.  * 
  61.  * This is the prototype for the link detection routine.
  62.  * It calls the default link detection callbacks upon link detection.
  63.  */
  64. typedef void (*xlinkNodeDetectFunc) (void *ctx, xmlNodePtr node);
  65.  
  66. /*
  67.  * The link detection module interact with the upper layers using
  68.  * a set of callback registered at parsing time.
  69.  */
  70.  
  71. /**
  72.  * xlinkSimpleLinkFunk:
  73.  * @ctx:  user data pointer
  74.  * @node:  the node carrying the link
  75.  * @href:  the target of the link
  76.  * @role:  the role string
  77.  * @title:  the link title
  78.  *
  79.  * This is the prototype for a simple link detection callback.
  80.  */
  81. typedef void
  82. (*xlinkSimpleLinkFunk)    (void *ctx,
  83.              xmlNodePtr node,
  84.              const xlinkHRef href,
  85.              const xlinkRole role,
  86.              const xlinkTitle title);
  87.  
  88. /**
  89.  * xlinkExtendedLinkFunk:
  90.  * @ctx:  user data pointer
  91.  * @node:  the node carrying the link
  92.  * @nbLocators: the number of locators detected on the link
  93.  * @hrefs:  pointer to the array of locator hrefs
  94.  * @roles:  pointer to the array of locator roles
  95.  * @nbArcs: the number of arcs detected on the link
  96.  * @from:  pointer to the array of source roles found on the arcs
  97.  * @to:  pointer to the array of target roles found on the arcs
  98.  * @show:  array of values for the show attributes found on the arcs
  99.  * @actuate:  array of values for the actuate attributes found on the arcs
  100.  * @nbTitles: the number of titles detected on the link
  101.  * @title:  array of titles detected on the link
  102.  * @langs:  array of xml:lang values for the titles
  103.  *
  104.  * This is the prototype for a extended link detection callback.
  105.  */
  106. typedef void
  107. (*xlinkExtendedLinkFunk)(void *ctx,
  108.              xmlNodePtr node,
  109.              int nbLocators,
  110.              const xlinkHRef *hrefs,
  111.              const xlinkRole *roles,
  112.              int nbArcs,
  113.              const xlinkRole *from,
  114.              const xlinkRole *to,
  115.              xlinkShow *show,
  116.              xlinkActuate *actuate,
  117.              int nbTitles,
  118.              const xlinkTitle *titles,
  119.              const xmlChar **langs);
  120.  
  121. /**
  122.  * xlinkExtendedLinkSetFunk:
  123.  * @ctx:  user data pointer
  124.  * @node:  the node carrying the link
  125.  * @nbLocators: the number of locators detected on the link
  126.  * @hrefs:  pointer to the array of locator hrefs
  127.  * @roles:  pointer to the array of locator roles
  128.  * @nbTitles: the number of titles detected on the link
  129.  * @title:  array of titles detected on the link
  130.  * @langs:  array of xml:lang values for the titles
  131.  *
  132.  * This is the prototype for a extended link set detection callback.
  133.  */
  134. typedef void
  135. (*xlinkExtendedLinkSetFunk)    (void *ctx,
  136.                  xmlNodePtr node,
  137.                  int nbLocators,
  138.                  const xlinkHRef *hrefs,
  139.                  const xlinkRole *roles,
  140.                  int nbTitles,
  141.                  const xlinkTitle *titles,
  142.                  const xmlChar **langs);
  143.  
  144. /**
  145.  * This is the structure containing a set of Links detection callbacks.
  146.  *
  147.  * There is no default xlink callbacks, if one want to get link
  148.  * recognition activated, those call backs must be provided before parsing.
  149.  */
  150. typedef struct _xlinkHandler xlinkHandler;
  151. typedef xlinkHandler *xlinkHandlerPtr;
  152. struct _xlinkHandler {
  153.     xlinkSimpleLinkFunk simple;
  154.     xlinkExtendedLinkFunk extended;
  155.     xlinkExtendedLinkSetFunk set;
  156. };
  157.  
  158. /*
  159.  * The default detection routine, can be overridden, they call the default
  160.  * detection callbacks. 
  161.  */
  162.  
  163. XMLPUBFUN xlinkNodeDetectFunc XMLCALL    
  164.         xlinkGetDefaultDetect    (void);
  165. XMLPUBFUN void XMLCALL            
  166.         xlinkSetDefaultDetect    (xlinkNodeDetectFunc func);
  167.  
  168. /*
  169.  * Routines to set/get the default handlers.
  170.  */
  171. XMLPUBFUN xlinkHandlerPtr XMLCALL    
  172.         xlinkGetDefaultHandler    (void);
  173. XMLPUBFUN void XMLCALL        
  174.         xlinkSetDefaultHandler    (xlinkHandlerPtr handler);
  175.  
  176. /*
  177.  * Link detection module itself.
  178.  */
  179. XMLPUBFUN xlinkType XMLCALL     
  180.         xlinkIsLink        (xmlDocPtr doc,
  181.                      xmlNodePtr node);
  182.  
  183. #ifdef __cplusplus
  184. }
  185. #endif
  186.  
  187. #endif /* LIBXML_XPTR_ENABLED */
  188.  
  189. #endif /* __XML_XLINK_H__ */
  190.